A device driver is a body of software code that enables one or more higher-level computer programs to interact with a hardware device. Often, a device driver accepts generic commands from a higher-level computer program with which a user interacts, and translates the commands into lower-level commands appropriate for the device being driven. By acting as a translator between a higher-level program and the hardware device, the device driver can simplify the programming of those programs, since providing a standardized way for the programs to interface with a device can allow developers of the programs to focus on higher-level program code, and not on lower-level machine commands needed to make the device operate.
A printer driver is a body of software code that enables higher-level programs to employ a printer device. In general, a printer driver provides three main types of functionality: rendering, configuration and user experience functionality. Rendering functionality provided by a printer driver translates information that the underlying operating system generates when a print function is invoked by a higher-level computer program into commands and data that comply with a page description language (PDL) used by the printer device (e.g., PostScript, PDF, XPS, PCL5, etc.). Information generated by a printer driver in PDL form may, for example, comprise a stream of data, in text and/or binary format, to be processed by a printer device in printing information.
Configuration functionality provided by a printer driver enables the printer device to provide information relating to its configuration, such as the paper sizes it supports, the number of paper trays presently in or out, whether it supports stapling, color printing, etc. User experience functionality manages various user dialogues presented to a user via a screen display, such as options presented during print operation, etc. Often, a “default” user experience is provided by the operating system, but the feature set provided by this default is extended (e.g., by the independent hardware vendor, or IHV, that supplies the printer device), to support such goals as branding.